package com.xuanheng.utils;

import android.util.Log;

import com.xuanheng.app.App;


public class LogUtils {

    public static void v(String tag, String msg) {
        if (App.LOG_LEVEL >= 5) {
            Log.v(tag, checkMsg(msg));
        }
    }

    public static void v(String tag, String msg, Throwable tr) {
        if (App.LOG_LEVEL >= 5) {
            Log.v(tag, checkMsg(msg), tr);
        }
    }

    public static void d(String tag, String msg) {
        if (App.LOG_LEVEL >= 4) {
            Log.d(tag, checkMsg(msg));
        }
    }

    public static void d(String tag, String msg, Throwable tr) {
        if (App.LOG_LEVEL >= 4) {
            Log.d(tag, checkMsg(msg), tr);
        }
    }

    public static void i(String tag, String msg) {
        if (App.LOG_LEVEL >= 3) {
            Log.i(tag, checkMsg(msg));
        }
    }

    public static void i(String tag, String msg, Throwable tr) {
        if (App.LOG_LEVEL >= 3) {
            Log.i(tag, checkMsg(msg), tr);
        }
    }

    public static void w(String tag, String msg) {
        if (App.LOG_LEVEL >= 2) {
            Log.w(tag, checkMsg(msg));
        }
    }

    public static void w(String tag, String msg, Throwable tr) {
        if (App.LOG_LEVEL >= 2) {
            Log.w(tag, checkMsg(msg), tr);
        }
    }

    public static void w(String tag, Throwable tr) {
        if (App.LOG_LEVEL >= 2) {
            Log.w(tag, tr);
        }
    }

    public static void e(String tag, String msg) {
        if (App.LOG_LEVEL >= 1) {
            Log.e(tag, checkMsg(msg));
        }
    }

    public static void e(String tag, String msg, Throwable tr) {
        if (App.LOG_LEVEL >= 1) {
            Log.e(tag, checkMsg(msg), tr);
        }
    }

    public static void de(String tag, String msg) {
        if (App.LOG_LEVEL >= 5) {
            //测试线时打E看着清楚
            Log.e(tag, checkMsg(msg));
        } else {
            //正式线打i
            Log.i(tag, checkMsg(msg));
        }
    }

    public static void i_long(String tag, String str) {
        if (App.LOG_LEVEL >= 2) {
            str = str.trim();
            int index = 0;
            int maxLength = 4000;
            String sub;
            while (index < str.length()) {
                if (str.length() <= index + maxLength) {
                    sub = str.substring(index);
                } else {
                    sub = str.substring(index, index + maxLength);
                }

                index += maxLength;
                d(tag, sub.trim());
            }
        }
    }

    public static void e_long(String tag, String str) {
        if (App.LOG_LEVEL >= 2) {
            str = str.trim();
            int index = 0;
            int maxLength = 4000;
            String sub;
            while (index < str.length()) {
                if (str.length() <= index + maxLength) {
                    sub = str.substring(index);
                } else {
                    sub = str.substring(index, index + maxLength);
                }

                index += maxLength;
                de(tag, sub.trim());
            }
        }
    }

    private static String checkMsg(String msg) {
        return msg == null ? "null" : msg;
    }
}
